package jp.co.yamcha.a01.presentation;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import jp.co.yamcha.a01.dataaccess.A01DAO;

/**
 * A01画面の管理ビーン<br /> RDBからデータを取得するサンプルテスト。
 *
 * @author test
 */
@ConversationScoped
@Named
public class A01 implements Serializable {

    //RDS用DAO
    @Inject
    transient private A01DAO a01DAO;
    
    /* データの入れ物 */
    private String col1;
    private String col2;
    private String col3;
    private String col4;
    private String col5;

    /**
     * Creates a new instance of A01
     */
    public A01() {
        //処理無し
    }

    /**
     * JSFテスト用メソッド。<br /> 固定文字列を画面に表示する。
     */
    public String search1() {
        this.col1 = "サーチＣＯＬ１";
        this.col2 = "サーチＣＯＬ２";
        this.col3 = "サーチＣＯＬ３";
        this.col4 = "サーチＣＯＬ４";
        this.col5 = "サーチＣＯＬ５";
        //TODO "?faces-redirect=true"化、全部に書くの面倒
        return "a01";
    }

    /**
     * データを検索して、検索結果をA01画面に表示する。
     */
    public String search2() throws Exception {
        //TODO 現在はテスト用に、帰ってくるデータは１件固定
        //TODO 時間測定やログ出力はAOPにする。
        List<Map> ret = a01DAO.getRdsDataByOne();

        if (ret != null) {
            Map map = ret.get(0);
            //データの箱の入れ替え
            this.col1 = map.get("col1").toString();
            this.col2 = map.get("col2").toString();
            this.col3 = map.get("col3").toString();
            this.col4 = map.get("col4").toString();
            this.col5 = map.get("col5").toString();
        } else {
            this.col1 = "データが無いよ";
        }

        //同じ画面に遷移
        return "a01";
    }

    /**
     * @return the col1
     */
    public String getCol1() {
        return col1;
    }

    /**
     * @param col1 the col1 to set
     */
    public void setCol1(String col1) {
        this.col1 = col1;
    }

    /**
     * @return the col2
     */
    public String getCol2() {
        return col2;
    }

    /**
     * @param col2 the col2 to set
     */
    public void setCol2(String col2) {
        this.col2 = col2;
    }

    /**
     * @return the col3
     */
    public String getCol3() {
        return col3;
    }

    /**
     * @param col3 the col3 to set
     */
    public void setCol3(String col3) {
        this.col3 = col3;
    }

    /**
     * @return the col4
     */
    public String getCol4() {
        return col4;
    }

    /**
     * @param col4 the col4 to set
     */
    public void setCol4(String col4) {
        this.col4 = col4;
    }

    /**
     * @return the col5
     */
    public String getCol5() {
        return col5;
    }

    /**
     * @param col5 the col5 to set
     */
    public void setCol5(String col5) {
        this.col5 = col5;
    }
}
